

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.01.0628 */
/* @@MIDL_FILE_HEADING(  ) */



/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 501
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */


#ifndef __wcntypes_h__
#define __wcntypes_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#ifndef DECLSPEC_XFGVIRT
#if defined(_CONTROL_FLOW_GUARD_XFG)
#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
#else
#define DECLSPEC_XFGVIRT(base, func)
#endif
#endif

/* Forward Declarations */ 

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_wcntypes_0000_0000 */
/* [local] */ 

/*++

Copyright (c) Microsoft Corporation

Module Name:

    WcnTypes.h

Abstract:

    Defines basic types and constants for WCN API

--*/
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
//
// WCN API error codes
//
#define WCN_E_PEER_NOT_FOUND             MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3C01)
#define WCN_E_AUTHENTICATION_FAILED      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3C02)
#define WCN_E_CONNECTION_REJECTED        MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3C03)
#define WCN_E_SESSION_TIMEDOUT           MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3C04)
#define WCN_E_PROTOCOL_ERROR             MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3C05)


//
// FD Query Constraint:
// Turn on SoftAP and listen for wireless devices
//
#define WCN_QUERY_CONSTRAINT_USE_SOFTAP                L"WCN.Discovery.SoftAP"


//
// List of defined WCN attribute types.
// These are based off of WPS TLV types.
// If the attribute type is followed by "Modificed in WPS 2.0"
//  it implies that the interpretation of the attribute has
//  changed or been extended in the WPS 2.0 specification (from the 
//  WPS 1.0h specification).
// New attributes to WPS 2.0 have been appended to the enum.
//
typedef /* [v1_enum] */ 
enum tagWCN_ATTRIBUTE_TYPE
    {
        WCN_TYPE_AP_CHANNEL	= 0,
        WCN_TYPE_ASSOCIATION_STATE	= ( WCN_TYPE_AP_CHANNEL + 1 ) ,
        WCN_TYPE_AUTHENTICATION_TYPE	= ( WCN_TYPE_ASSOCIATION_STATE + 1 ) ,
        WCN_TYPE_AUTHENTICATION_TYPE_FLAGS	= ( WCN_TYPE_AUTHENTICATION_TYPE + 1 ) ,
        WCN_TYPE_AUTHENTICATOR	= ( WCN_TYPE_AUTHENTICATION_TYPE_FLAGS + 1 ) ,
        WCN_TYPE_CONFIG_METHODS	= ( WCN_TYPE_AUTHENTICATOR + 1 ) ,
        WCN_TYPE_CONFIGURATION_ERROR	= ( WCN_TYPE_CONFIG_METHODS + 1 ) ,
        WCN_TYPE_CONFIRMATION_URL4	= ( WCN_TYPE_CONFIGURATION_ERROR + 1 ) ,
        WCN_TYPE_CONFIRMATION_URL6	= ( WCN_TYPE_CONFIRMATION_URL4 + 1 ) ,
        WCN_TYPE_CONNECTION_TYPE	= ( WCN_TYPE_CONFIRMATION_URL6 + 1 ) ,
        WCN_TYPE_CONNECTION_TYPE_FLAGS	= ( WCN_TYPE_CONNECTION_TYPE + 1 ) ,
        WCN_TYPE_CREDENTIAL	= ( WCN_TYPE_CONNECTION_TYPE_FLAGS + 1 ) ,
        WCN_TYPE_DEVICE_NAME	= ( WCN_TYPE_CREDENTIAL + 1 ) ,
        WCN_TYPE_DEVICE_PASSWORD_ID	= ( WCN_TYPE_DEVICE_NAME + 1 ) ,
        WCN_TYPE_E_HASH1	= ( WCN_TYPE_DEVICE_PASSWORD_ID + 1 ) ,
        WCN_TYPE_E_HASH2	= ( WCN_TYPE_E_HASH1 + 1 ) ,
        WCN_TYPE_E_SNONCE1	= ( WCN_TYPE_E_HASH2 + 1 ) ,
        WCN_TYPE_E_SNONCE2	= ( WCN_TYPE_E_SNONCE1 + 1 ) ,
        WCN_TYPE_ENCRYPTED_SETTINGS	= ( WCN_TYPE_E_SNONCE2 + 1 ) ,
        WCN_TYPE_ENCRYPTION_TYPE	= ( WCN_TYPE_ENCRYPTED_SETTINGS + 1 ) ,
        WCN_TYPE_ENCRYPTION_TYPE_FLAGS	= ( WCN_TYPE_ENCRYPTION_TYPE + 1 ) ,
        WCN_TYPE_ENROLLEE_NONCE	= ( WCN_TYPE_ENCRYPTION_TYPE_FLAGS + 1 ) ,
        WCN_TYPE_FEATURE_ID	= ( WCN_TYPE_ENROLLEE_NONCE + 1 ) ,
        WCN_TYPE_IDENTITY	= ( WCN_TYPE_FEATURE_ID + 1 ) ,
        WCN_TYPE_IDENTITY_PROOF	= ( WCN_TYPE_IDENTITY + 1 ) ,
        WCN_TYPE_KEY_WRAP_AUTHENTICATOR	= ( WCN_TYPE_IDENTITY_PROOF + 1 ) ,
        WCN_TYPE_KEY_IDENTIFIER	= ( WCN_TYPE_KEY_WRAP_AUTHENTICATOR + 1 ) ,
        WCN_TYPE_MAC_ADDRESS	= ( WCN_TYPE_KEY_IDENTIFIER + 1 ) ,
        WCN_TYPE_MANUFACTURER	= ( WCN_TYPE_MAC_ADDRESS + 1 ) ,
        WCN_TYPE_MESSAGE_TYPE	= ( WCN_TYPE_MANUFACTURER + 1 ) ,
        WCN_TYPE_MODEL_NAME	= ( WCN_TYPE_MESSAGE_TYPE + 1 ) ,
        WCN_TYPE_MODEL_NUMBER	= ( WCN_TYPE_MODEL_NAME + 1 ) ,
        WCN_TYPE_NETWORK_INDEX	= ( WCN_TYPE_MODEL_NUMBER + 1 ) ,
        WCN_TYPE_NETWORK_KEY	= ( WCN_TYPE_NETWORK_INDEX + 1 ) ,
        WCN_TYPE_NETWORK_KEY_INDEX	= ( WCN_TYPE_NETWORK_KEY + 1 ) ,
        WCN_TYPE_NEW_DEVICE_NAME	= ( WCN_TYPE_NETWORK_KEY_INDEX + 1 ) ,
        WCN_TYPE_NEW_PASSWORD	= ( WCN_TYPE_NEW_DEVICE_NAME + 1 ) ,
        WCN_TYPE_OOB_DEVICE_PASSWORD	= ( WCN_TYPE_NEW_PASSWORD + 1 ) ,
        WCN_TYPE_OS_VERSION	= ( WCN_TYPE_OOB_DEVICE_PASSWORD + 1 ) ,
        WCN_TYPE_POWER_LEVEL	= ( WCN_TYPE_OS_VERSION + 1 ) ,
        WCN_TYPE_PSK_CURRENT	= ( WCN_TYPE_POWER_LEVEL + 1 ) ,
        WCN_TYPE_PSK_MAX	= ( WCN_TYPE_PSK_CURRENT + 1 ) ,
        WCN_TYPE_PUBLIC_KEY	= ( WCN_TYPE_PSK_MAX + 1 ) ,
        WCN_TYPE_RADIO_ENABLED	= ( WCN_TYPE_PUBLIC_KEY + 1 ) ,
        WCN_TYPE_REBOOT	= ( WCN_TYPE_RADIO_ENABLED + 1 ) ,
        WCN_TYPE_REGISTRAR_CURRENT	= ( WCN_TYPE_REBOOT + 1 ) ,
        WCN_TYPE_REGISTRAR_ESTABLISHED	= ( WCN_TYPE_REGISTRAR_CURRENT + 1 ) ,
        WCN_TYPE_REGISTRAR_LIST	= ( WCN_TYPE_REGISTRAR_ESTABLISHED + 1 ) ,
        WCN_TYPE_REGISTRAR_MAX	= ( WCN_TYPE_REGISTRAR_LIST + 1 ) ,
        WCN_TYPE_REGISTRAR_NONCE	= ( WCN_TYPE_REGISTRAR_MAX + 1 ) ,
        WCN_TYPE_REQUEST_TYPE	= ( WCN_TYPE_REGISTRAR_NONCE + 1 ) ,
        WCN_TYPE_RESPONSE_TYPE	= ( WCN_TYPE_REQUEST_TYPE + 1 ) ,
        WCN_TYPE_RF_BANDS	= ( WCN_TYPE_RESPONSE_TYPE + 1 ) ,
        WCN_TYPE_R_HASH1	= ( WCN_TYPE_RF_BANDS + 1 ) ,
        WCN_TYPE_R_HASH2	= ( WCN_TYPE_R_HASH1 + 1 ) ,
        WCN_TYPE_R_SNONCE1	= ( WCN_TYPE_R_HASH2 + 1 ) ,
        WCN_TYPE_R_SNONCE2	= ( WCN_TYPE_R_SNONCE1 + 1 ) ,
        WCN_TYPE_SELECTED_REGISTRAR	= ( WCN_TYPE_R_SNONCE2 + 1 ) ,
        WCN_TYPE_SERIAL_NUMBER	= ( WCN_TYPE_SELECTED_REGISTRAR + 1 ) ,
        WCN_TYPE_WI_FI_PROTECTED_SETUP_STATE	= ( WCN_TYPE_SERIAL_NUMBER + 1 ) ,
        WCN_TYPE_SSID	= ( WCN_TYPE_WI_FI_PROTECTED_SETUP_STATE + 1 ) ,
        WCN_TYPE_TOTAL_NETWORKS	= ( WCN_TYPE_SSID + 1 ) ,
        WCN_TYPE_UUID_E	= ( WCN_TYPE_TOTAL_NETWORKS + 1 ) ,
        WCN_TYPE_UUID_R	= ( WCN_TYPE_UUID_E + 1 ) ,
        WCN_TYPE_VENDOR_EXTENSION	= ( WCN_TYPE_UUID_R + 1 ) ,
        WCN_TYPE_VERSION	= ( WCN_TYPE_VENDOR_EXTENSION + 1 ) ,
        WCN_TYPE_X_509_CERTIFICATE_REQUEST	= ( WCN_TYPE_VERSION + 1 ) ,
        WCN_TYPE_X_509_CERTIFICATE	= ( WCN_TYPE_X_509_CERTIFICATE_REQUEST + 1 ) ,
        WCN_TYPE_EAP_IDENTITY	= ( WCN_TYPE_X_509_CERTIFICATE + 1 ) ,
        WCN_TYPE_MESSAGE_COUNTER	= ( WCN_TYPE_EAP_IDENTITY + 1 ) ,
        WCN_TYPE_PUBLIC_KEY_HASH	= ( WCN_TYPE_MESSAGE_COUNTER + 1 ) ,
        WCN_TYPE_REKEY_KEY	= ( WCN_TYPE_PUBLIC_KEY_HASH + 1 ) ,
        WCN_TYPE_KEY_LIFETIME	= ( WCN_TYPE_REKEY_KEY + 1 ) ,
        WCN_TYPE_PERMITTED_CONFIG_METHODS	= ( WCN_TYPE_KEY_LIFETIME + 1 ) ,
        WCN_TYPE_SELECTED_REGISTRAR_CONFIG_METHODS	= ( WCN_TYPE_PERMITTED_CONFIG_METHODS + 1 ) ,
        WCN_TYPE_PRIMARY_DEVICE_TYPE	= ( WCN_TYPE_SELECTED_REGISTRAR_CONFIG_METHODS + 1 ) ,
        WCN_TYPE_SECONDARY_DEVICE_TYPE_LIST	= ( WCN_TYPE_PRIMARY_DEVICE_TYPE + 1 ) ,
        WCN_TYPE_PORTABLE_DEVICE	= ( WCN_TYPE_SECONDARY_DEVICE_TYPE_LIST + 1 ) ,
        WCN_TYPE_AP_SETUP_LOCKED	= ( WCN_TYPE_PORTABLE_DEVICE + 1 ) ,
        WCN_TYPE_APPLICATION_EXTENSION	= ( WCN_TYPE_AP_SETUP_LOCKED + 1 ) ,
        WCN_TYPE_EAP_TYPE	= ( WCN_TYPE_APPLICATION_EXTENSION + 1 ) ,
        WCN_TYPE_INITIALIZATION_VECTOR	= ( WCN_TYPE_EAP_TYPE + 1 ) ,
        WCN_TYPE_KEY_PROVIDED_AUTOMATICALLY	= ( WCN_TYPE_INITIALIZATION_VECTOR + 1 ) ,
        WCN_TYPE_802_1X_ENABLED	= ( WCN_TYPE_KEY_PROVIDED_AUTOMATICALLY + 1 ) ,
        WCN_TYPE_APPSESSIONKEY	= ( WCN_TYPE_802_1X_ENABLED + 1 ) ,
        WCN_TYPE_WEPTRANSMITKEY	= ( WCN_TYPE_APPSESSIONKEY + 1 ) ,
        WCN_TYPE_UUID	= ( WCN_TYPE_WEPTRANSMITKEY + 1 ) ,
        WCN_TYPE_PRIMARY_DEVICE_TYPE_CATEGORY	= ( WCN_TYPE_UUID + 1 ) ,
        WCN_TYPE_PRIMARY_DEVICE_TYPE_SUBCATEGORY_OUI	= ( WCN_TYPE_PRIMARY_DEVICE_TYPE_CATEGORY + 1 ) ,
        WCN_TYPE_PRIMARY_DEVICE_TYPE_SUBCATEGORY	= ( WCN_TYPE_PRIMARY_DEVICE_TYPE_SUBCATEGORY_OUI + 1 ) ,
        WCN_TYPE_CURRENT_SSID	= ( WCN_TYPE_PRIMARY_DEVICE_TYPE_SUBCATEGORY + 1 ) ,
        WCN_TYPE_BSSID	= ( WCN_TYPE_CURRENT_SSID + 1 ) ,
        WCN_TYPE_DOT11_MAC_ADDRESS	= ( WCN_TYPE_BSSID + 1 ) ,
        WCN_TYPE_AUTHORIZED_MACS	= ( WCN_TYPE_DOT11_MAC_ADDRESS + 1 ) ,
        WCN_TYPE_NETWORK_KEY_SHAREABLE	= ( WCN_TYPE_AUTHORIZED_MACS + 1 ) ,
        WCN_TYPE_REQUEST_TO_ENROLL	= ( WCN_TYPE_NETWORK_KEY_SHAREABLE + 1 ) ,
        WCN_TYPE_REQUESTED_DEVICE_TYPE	= ( WCN_TYPE_REQUEST_TO_ENROLL + 1 ) ,
        WCN_TYPE_SETTINGS_DELAY_TIME	= ( WCN_TYPE_REQUESTED_DEVICE_TYPE + 1 ) ,
        WCN_TYPE_VERSION2	= ( WCN_TYPE_SETTINGS_DELAY_TIME + 1 ) ,
        WCN_TYPE_VENDOR_EXTENSION_WFA	= ( WCN_TYPE_VERSION2 + 1 ) ,
        WCN_NUM_ATTRIBUTE_TYPES	= ( WCN_TYPE_VENDOR_EXTENSION_WFA + 1 ) 
    } 	WCN_ATTRIBUTE_TYPE;


//
// Values for WCN_TYPE_VERSION/WCN_TYPE_VERSION2 (these refer to the WPS protocol version)
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_VERSION
    {
        WCN_VALUE_VERSION_1_0	= 0x10,
        WCN_VALUE_VERSION_2_0	= 0x20
    } 	WCN_VALUE_TYPE_VERSION;


//
// Values for all boolean types (example: WCN_TYPE_AP_SETUP_LOCKED)
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_BOOLEAN
    {
        WCN_VALUE_FALSE	= 0,
        WCN_VALUE_TRUE	= 1
    } 	WCN_VALUE_TYPE_BOOLEAN;


//
// Values for WCN_TYPE_ASSOCIATION_STATE
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_ASSOCIATION_STATE
    {
        WCN_VALUE_AS_NOT_ASSOCIATED	= 0,
        WCN_VALUE_AS_CONNECTION_SUCCESS	= 1,
        WCN_VALUE_AS_CONFIGURATION_FAILURE	= 2,
        WCN_VALUE_AS_ASSOCIATION_FAILURE	= 3,
        WCN_VALUE_AS_IP_FAILURE	= 4
    } 	WCN_VALUE_TYPE_ASSOCIATION_STATE;


//
// Values for WCN_TYPE_AUTHENTICATION_TYPE
// and WCN_TYPE_AUTHENTICATION_TYPE_FLAGS
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_AUTHENTICATION_TYPE
    {
        WCN_VALUE_AT_OPEN	= 0x1,
        WCN_VALUE_AT_WPAPSK	= 0x2,
        WCN_VALUE_AT_SHARED	= 0x4,
        WCN_VALUE_AT_WPA	= 0x8,
        WCN_VALUE_AT_WPA2	= 0x10,
        WCN_VALUE_AT_WPA2PSK	= 0x20,
        WCN_VALUE_AT_WPAWPA2PSK_MIXED	= 0x22
    } 	WCN_VALUE_TYPE_AUTHENTICATION_TYPE;


//
// Values for WCN_TYPE_CONFIG_METHODS
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_CONFIG_METHODS
    {
        WCN_VALUE_CM_USBA	= 0x1,
        WCN_VALUE_CM_ETHERNET	= 0x2,
        WCN_VALUE_CM_LABEL	= 0x4,
        WCN_VALUE_CM_DISPLAY	= 0x8,
        WCN_VALUE_CM_EXTERNAL_NFC	= 0x10,
        WCN_VALUE_CM_INTEGRATED_NFC	= 0x20,
        WCN_VALUE_CM_NFC_INTERFACE	= 0x40,
        WCN_VALUE_CM_PUSHBUTTON	= 0x80,
        WCN_VALUE_CM_KEYPAD	= 0x100,
        WCN_VALUE_CM_VIRT_PUSHBUTTON	= 0x280,
        WCN_VALUE_CM_PHYS_PUSHBUTTON	= 0x480,
        WCN_VALUE_CM_VIRT_DISPLAY	= 0x2008,
        WCN_VALUE_CM_PHYS_DISPLAY	= 0x4008
    } 	WCN_VALUE_TYPE_CONFIG_METHODS;


//
// Values for WCN_TYPE_CONFIGURATION_ERROR
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_CONFIGURATION_ERROR
    {
        WCN_VALUE_CE_NO_ERROR	= 0,
        WCN_VALUE_CE_OOB_INTERFACE_READ_ERROR	= 1,
        WCN_VALUE_CE_DECRYPTION_CRC_FAILURE	= 2,
        WCN_VALUE_CE_2_4_CHANNEL_NOT_SUPPORTED	= 3,
        WCN_VALUE_CE_5_0_CHANNEL_NOT_SUPPORTED	= 4,
        WCN_VALUE_CE_SIGNAL_TOO_WEAK	= 5,
        WCN_VALUE_CE_NETWORK_AUTHENTICATION_FAILURE	= 6,
        WCN_VALUE_CE_NETWORK_ASSOCIATION_FAILURE	= 7,
        WCN_VALUE_CE_NO_DHCP_RESPONSE	= 8,
        WCN_VALUE_CE_FAILED_DHCP_CONFIG	= 9,
        WCN_VALUE_CE_IP_ADDRESS_CONFLICT	= 10,
        WCN_VALUE_CE_COULD_NOT_CONNECT_TO_REGISTRAR	= 11,
        WCN_VALUE_CE_MULTIPLE_PBC_SESSIONS_DETECTED	= 12,
        WCN_VALUE_CE_ROGUE_ACTIVITY_SUSPECTED	= 13,
        WCN_VALUE_CE_DEVICE_BUSY	= 14,
        WCN_VALUE_CE_SETUP_LOCKED	= 15,
        WCN_VALUE_CE_MESSAGE_TIMEOUT	= 16,
        WCN_VALUE_CE_REGISTRATION_SESSION_TIMEOUT	= 17,
        WCN_VALUE_CE_DEVICE_PASSWORD_AUTH_FAILURE	= 18
    } 	WCN_VALUE_TYPE_CONFIGURATION_ERROR;


//
// Values for WCN_TYPE_CONNECTION_TYPE
// and WCN_TYPE_CONNECTION_TYPE_FLAGS
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_CONNECTION_TYPE
    {
        WCN_VALUE_CT_ESS	= 1,
        WCN_VALUE_CT_IBSS	= 2
    } 	WCN_VALUE_TYPE_CONNECTION_TYPE;


//
// Values for WCN_TYPE_DEVICE_PASSWORD_ID
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_DEVICE_PASSWORD_ID
    {
        WCN_VALUE_DP_DEFAULT	= 0,
        WCN_VALUE_DP_USER_SPECIFIED	= 0x1,
        WCN_VALUE_DP_MACHINE_SPECIFIED	= 0x2,
        WCN_VALUE_DP_REKEY	= 0x3,
        WCN_VALUE_DP_PUSHBUTTON	= 0x4,
        WCN_VALUE_DP_REGISTRAR_SPECIFIED	= 0x5,
        WCN_VALUE_DP_NFC_CONNECTION_HANDOVER	= 0x7,
        WCN_VALUE_DP_WFD_SERVICES	= 0x8,
        WCN_VALUE_DP_OUTOFBAND_MIN	= 0x10,
        WCN_VALUE_DP_OUTOFBAND_MAX	= 0xffff
    } 	WCN_VALUE_TYPE_DEVICE_PASSWORD_ID;


//
// Values for WCN_TYPE_ENCRYPTION_TYPE and
// WCN_TYPE_ENCRYPTION_TYPE_FLAGS
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_ENCRYPTION_TYPE
    {
        WCN_VALUE_ET_NONE	= 0x1,
        WCN_VALUE_ET_WEP	= 0x2,
        WCN_VALUE_ET_TKIP	= 0x4,
        WCN_VALUE_ET_AES	= 0x8,
        WCN_VALUE_ET_TKIP_AES_MIXED	= 0xc
    } 	WCN_VALUE_TYPE_ENCRYPTION_TYPE;


//
// Values for WCN_TYPE_MESSAGE_TYPE
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_MESSAGE_TYPE
    {
        WCN_VALUE_MT_BEACON	= 0x1,
        WCN_VALUE_MT_PROBE_REQUEST	= 0x2,
        WCN_VALUE_MT_PROBE_RESPONSE	= 0x3,
        WCN_VALUE_MT_M1	= 0x4,
        WCN_VALUE_MT_M2	= 0x5,
        WCN_VALUE_MT_M2D	= 0x6,
        WCN_VALUE_MT_M3	= 0x7,
        WCN_VALUE_MT_M4	= 0x8,
        WCN_VALUE_MT_M5	= 0x9,
        WCN_VALUE_MT_M6	= 0xa,
        WCN_VALUE_MT_M7	= 0xb,
        WCN_VALUE_MT_M8	= 0xc,
        WCN_VALUE_MT_ACK	= 0xd,
        WCN_VALUE_MT_NACK	= 0xe,
        WCN_VALUE_MT_DONE	= 0xf
    } 	WCN_VALUE_TYPE_MESSAGE_TYPE;


//
// Values for WCN_TYPE_REQUEST_TYPE
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_REQUEST_TYPE
    {
        WCN_VALUE_ReqT_ENROLLEE_INFO	= 0,
        WCN_VALUE_ReqT_ENROLLEE_OPEN_1X	= 0x1,
        WCN_VALUE_ReqT_REGISTRAR	= 0x2,
        WCN_VALUE_ReqT_MANAGER_REGISTRAR	= 0x3
    } 	WCN_VALUE_TYPE_REQUEST_TYPE;


//
// Values for WCN_TYPE_RESPONSE_TYPE
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_RESPONSE_TYPE
    {
        WCN_VALUE_RspT_ENROLLEE_INFO	= 0,
        WCN_VALUE_RspT_ENROLLEE_OPEN_1X	= 0x1,
        WCN_VALUE_RspT_REGISTRAR	= 0x2,
        WCN_VALUE_RspT_AP	= 0x3
    } 	WCN_VALUE_TYPE_RESPONSE_TYPE;


//
// Values for WCN_TYPE_RF_BANDS
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_RF_BANDS
    {
        WCN_VALUE_RB_24GHZ	= 0x1,
        WCN_VALUE_RB_50GHZ	= 0x2
    } 	WCN_VALUE_TYPE_RF_BANDS;


//
// Values for WCN_TYPE_WI_FI_PROTECTED_SETUP_STATE
//
typedef /* [v1_enum] */ 
enum tagWCN_VALUE_TYPE_WI_FI_PROTECTED_SETUP_STATE
    {
        WCN_VALUE_SS_RESERVED00	= 0,
        WCN_VALUE_SS_NOT_CONFIGURED	= 0x1,
        WCN_VALUE_SS_CONFIGURED	= 0x2
    } 	WCN_VALUE_TYPE_WI_FI_PROTECTED_SETUP_STATE;


//
// Values for WCN_TYPE_PRIMARY_DEVICE_TYPE[Category]
//
typedef unsigned short WCN_VALUE_TYPE_DEVICE_TYPE_CATEGORY;

#define	WCN_VALUE_DT_CATEGORY_COMPUTER	( 0x1 )

#define	WCN_VALUE_DT_CATEGORY_INPUT_DEVICE	( 0x2 )

#define	WCN_VALUE_DT_CATEGORY_PRINTER	( 0x3 )

#define	WCN_VALUE_DT_CATEGORY_CAMERA	( 0x4 )

#define	WCN_VALUE_DT_CATEGORY_STORAGE	( 0x5 )

#define	WCN_VALUE_DT_CATEGORY_NETWORK_INFRASTRUCTURE	( 0x6 )

#define	WCN_VALUE_DT_CATEGORY_DISPLAY	( 0x7 )

#define	WCN_VALUE_DT_CATEGORY_MULTIMEDIA_DEVICE	( 0x8 )

#define	WCN_VALUE_DT_CATEGORY_GAMING_DEVICE	( 0x9 )

#define	WCN_VALUE_DT_CATEGORY_TELEPHONE	( 0xa )

#define	WCN_VALUE_DT_CATEGORY_AUDIO_DEVICE	( 0xb )

#define	WCN_VALUE_DT_CATEGORY_OTHER	( 0xff )


//
// Value for WCN_TYPE_PRIMARY_DEVICE_TYPE[SubCategoryOUI]
//
typedef unsigned __int32 WCN_VALUE_TYPE_DEVICE_TYPE_SUBCATEGORY_OUI;

// Standard OUI for Wi-Fi Alliance
#define	WCN_VALUE_DT_SUBTYPE_WIFI_OUI	( 0x50f204 )


//
// Values for WCN_TYPE_PRIMARY_DEVICE_TYPE[SubCategory]
//
typedef unsigned short WCN_VALUE_TYPE_DEVICE_TYPE_SUBCATEGORY;

// Category = WCN_VALUE_DT_CATEGORY_COMPUTER
#define	WCN_VALUE_DT_SUBTYPE_COMPUTER__PC	( 0x1 )

#define	WCN_VALUE_DT_SUBTYPE_COMPUTER__SERVER	( 0x2 )

#define	WCN_VALUE_DT_SUBTYPE_COMPUTER__MEDIACENTER	( 0x3 )

#define	WCN_VALUE_DT_SUBTYPE_COMPUTER__ULTRAMOBILEPC	( 0x4 )

#define	WCN_VALUE_DT_SUBTYPE_COMPUTER__NOTEBOOK	( 0x5 )

#define	WCN_VALUE_DT_SUBTYPE_COMPUTER__DESKTOP	( 0x6 )

#define	WCN_VALUE_DT_SUBTYPE_COMPUTER__MID	( 0x7 )

#define	WCN_VALUE_DT_SUBTYPE_COMPUTER__NETBOOK	( 0x8 )

// NOTE: ALL input device sub-categories are new to WPS 2.0
// Category = WCN_VALUE_DT_CATEGORY_INPUT_DEVICE
#define	WCN_VALUE_DT_SUBTYPE_INPUT_DEVICE__KEYBOARD	( 0x1 )

#define	WCN_VALUE_DT_SUBTYPE_INPUT_DEVICE__MOUSE	( 0x2 )

#define	WCN_VALUE_DT_SUBTYPE_INPUT_DEVICE__JOYSTICK	( 0x3 )

#define	WCN_VALUE_DT_SUBTYPE_INPUT_DEVICE__TRACKBALL	( 0x4 )

#define	WCN_VALUE_DT_SUBTYPE_INPUT_DEVICE__GAMECONTROLLER	( 0x5 )

#define	WCN_VALUE_DT_SUBTYPE_INPUT_DEVICE__REMOTE	( 0x6 )

#define	WCN_VALUE_DT_SUBTYPE_INPUT_DEVICE__TOUCHSCREEN	( 0x7 )

#define	WCN_VALUE_DT_SUBTYPE_INPUT_DEVICE__BIOMETRICREADER	( 0x8 )

#define	WCN_VALUE_DT_SUBTYPE_INPUT_DEVICE__BARCODEREADER	( 0x9 )

// NOTE: This category covers printers, scanners, faxes and copiers
// Category = WCN_VALUE_DT_CATEGORY_PRINTER
#define	WCN_VALUE_DT_SUBTYPE_PRINTER__PRINTER	( 0x1 )

#define	WCN_VALUE_DT_SUBTYPE_PRINTER__SCANNER	( 0x2 )

#define	WCN_VALUE_DT_SUBTYPE_PRINTER__FAX	( 0x3 )

#define	WCN_VALUE_DT_SUBTYPE_PRINTER__COPIER	( 0x4 )

#define	WCN_VALUE_DT_SUBTYPE_PRINTER__ALLINONE	( 0x5 )

// Category = WCN_VALUE_DT_CATEGORY_CAMERA
#define	WCN_VALUE_DT_SUBTYPE_CAMERA__STILL_CAMERA	( 0x1 )

#define	WCN_VALUE_DT_SUBTYPE_CAMERA__VIDEO_CAMERA	( 0x2 )

#define	WCN_VALUE_DT_SUBTYPE_CAMERA__WEB_CAMERA	( 0x3 )

#define	WCN_VALUE_DT_SUBTYPE_CAMERA__SECURITY_CAMERA	( 0x4 )

// Category = WCN_VALUE_DT_CATEGORY_STORAGE
#define	WCN_VALUE_DT_SUBTYPE_STORAGE__NAS	( 0x1 )

// Category = WCN_VALUE_DT_CATEGORY_NETWORK_INFRASTRUCTURE
#define	WCN_VALUE_DT_SUBTYPE_NETWORK_INFRASTRUCUTURE__AP	( 0x1 )

#define	WCN_VALUE_DT_SUBTYPE_NETWORK_INFRASTRUCUTURE__ROUTER	( 0x2 )

#define	WCN_VALUE_DT_SUBTYPE_NETWORK_INFRASTRUCUTURE__SWITCH	( 0x3 )

#define	WCN_VALUE_DT_SUBTYPE_NETWORK_INFRASTRUCUTURE__GATEWAY	( 0x4 )

#define	WCN_VALUE_DT_SUBTYPE_NETWORK_INFRASTRUCUTURE__BRIDGE	( 0x5 )

// Category = WCN_VALUE_DT_CATEGORY_DISPLAY
#define	WCN_VALUE_DT_SUBTYPE_DISPLAY__TELEVISION	( 0x1 )

#define	WCN_VALUE_DT_SUBTYPE_DISPLAY__PICTURE_FRAME	( 0x2 )

#define	WCN_VALUE_DT_SUBTYPE_DISPLAY__PROJECTOR	( 0x3 )

#define	WCN_VALUE_DT_SUBTYPE_DISPLAY__MONITOR	( 0x4 )

// Category = WCN_VALUE_DT_CATEGORY_MULTIMEDIA_DEVICE
#define	WCN_VALUE_DT_SUBTYPE_MULTIMEDIA_DEVICE__DAR	( 0x1 )

#define	WCN_VALUE_DT_SUBTYPE_MULTIMEDIA_DEVICE__PVR	( 0x2 )

#define	WCN_VALUE_DT_SUBTYPE_MULTIMEDIA_DEVICE__MCX	( 0x3 )

#define	WCN_VALUE_DT_SUBTYPE_MULTIMEDIA_DEVICE__SETTOPBOX	( 0x4 )

#define	WCN_VALUE_DT_SUBTYPE_MULTIMEDIA_DEVICE__MEDIA_SERVER_ADAPT_EXT	( 0x5 )

#define	WCN_VALUE_DT_SUBTYPE_MULTIMEDIA_DEVICE__PVP	( 0x6 )

// Category = WCN_VALUE_DT_CATEGORY_GAMING_DEVICE
#define	WCN_VALUE_DT_SUBTYPE_GAMING_DEVICE__XBOX	( 0x1 )

#define	WCN_VALUE_DT_SUBTYPE_GAMING_DEVICE__XBOX360	( 0x2 )

#define	WCN_VALUE_DT_SUBTYPE_GAMING_DEVICE__PLAYSTATION	( 0x3 )

#define	WCN_VALUE_DT_SUBTYPE_GAMING_DEVICE__CONSOLE_ADAPT	( 0x4 )

#define	WCN_VALUE_DT_SUBTYPE_GAMING_DEVICE__PORTABLE	( 0x5 )

// Category = WCN_VALUE_DT_CATEGORY_TELEPHONE
#define	WCN_VALUE_DT_SUBTYPE_TELEPHONE__WINDOWS_MOBILE	( 0x1 )

#define	WCN_VALUE_DT_SUBTYPE_TELEPHONE__PHONE_SINGLEMODE	( 0x2 )

#define	WCN_VALUE_DT_SUBTYPE_TELEPHONE__PHONE_DUALMODE	( 0x3 )

#define	WCN_VALUE_DT_SUBTYPE_TELEPHONE__SMARTPHONE_SINGLEMODE	( 0x4 )

#define	WCN_VALUE_DT_SUBTYPE_TELEPHONE__SMARTPHONE_DUALMODE	( 0x5 )

// NOTE: ALL audio device sub-categories are new to WPS 2.0
// Category = WCN_VALUE_DT_CATEGORY_AUDIO_DEVICE
#define	WCN_VALUE_DT_SUBTYPE_AUDIO_DEVICE__TUNER_RECEIVER	( 0x1 )

#define	WCN_VALUE_DT_SUBTYPE_AUDIO_DEVICE__SPEAKERS	( 0x2 )

#define	WCN_VALUE_DT_SUBTYPE_AUDIO_DEVICE__PMP	( 0x3 )

#define	WCN_VALUE_DT_SUBTYPE_AUDIO_DEVICE__HEADSET	( 0x4 )

#define	WCN_VALUE_DT_SUBTYPE_AUDIO_DEVICE__HEADPHONES	( 0x5 )

#define	WCN_VALUE_DT_SUBTYPE_AUDIO_DEVICE__MICROPHONE	( 0x6 )

#define	WCN_VALUE_DT_SUBTYPE_AUDIO_DEVICE__HOMETHEATER	( 0x7 )

//
// Values for WCN_TYPE_PRIMARY_DEVICE_TYPE
//
#ifdef  _MSC_VER
#pragma pack(push, 1)
typedef struct tagWCN_VALUE_TYPE_PRIMARY_DEVICE_TYPE
    {
    WCN_VALUE_TYPE_DEVICE_TYPE_CATEGORY Category;
    WCN_VALUE_TYPE_DEVICE_TYPE_SUBCATEGORY_OUI SubCategoryOUI;
    WCN_VALUE_TYPE_DEVICE_TYPE_SUBCATEGORY SubCategory;
    } 	WCN_VALUE_TYPE_PRIMARY_DEVICE_TYPE;

#pragma pack(pop)
#endif // _MSC_VER
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion


extern RPC_IF_HANDLE __MIDL_itf_wcntypes_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_wcntypes_0000_0000_v0_0_s_ifspec;

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


